package net.lzzy.practices.services;

import net.lzzy.practices.entities.User;
import net.lzzy.practices.repositories.UserProjection;

import java.awt.print.Pageable;
import java.util.List;
import java.util.UUID;

public interface UserService {
    /**
     *
     * @param userName
     * @param password
     * @return
     */

    User check(String userName, String password);

    boolean isUserNameOccupied(String userName);

    User register(User user);

    List<User> get();

    User getById(UUID id);

    List<User> get(int page,int size);

    Integer count();

    List<User> search(String kw);

    List<User> getApplying(boolean applying);

    User approveTeacher(UUID id);
    User declineTeacher(UUID id);
    User banUser(UUID id);

    String getSalt(String userName);
}
